//
//  FlyClientTools.m
//  EnjoyShoppingStreet
//
//  Created by lifayu on 2017/9/25.
//  Copyright © 2017年 lifayu. All rights reserved.
//

#import "FlyClientTools.h"
#import <sys/utsname.h>
#import <AVFoundation/AVFoundation.h>

@implementation FlyClientTools


+ (NSString*)getDeviceName
{
    struct utsname systemInfo;
    
    uname(&systemInfo);
    
    NSString*platform = [NSString stringWithCString:systemInfo.machine encoding:NSASCIIStringEncoding];
    
    if([platform isEqualToString:@"iPhone1,1"])
        return@"iPhone 2G";
    
    if([platform isEqualToString:@"iPhone1,2"])
        return@"iPhone 3G";
    
    if([platform isEqualToString:@"iPhone2,1"])
        return@"iPhone 3GS";
    
    if([platform isEqualToString:@"iPhone3,1"])
        return@"iPhone 4";
    
    if([platform isEqualToString:@"iPhone3,2"])
        return@"iPhone 4";
    
    if([platform isEqualToString:@"iPhone3,3"])
        return@"iPhone 4";
    
    if([platform isEqualToString:@"iPhone4,1"])
        return@"iPhone 4S";
    
    if([platform isEqualToString:@"iPhone5,1"])
        return@"iPhone 5";
    
    if([platform isEqualToString:@"iPhone5,2"])
        return@"iPhone 5";
    
    if([platform isEqualToString:@"iPhone5,3"])
        return@"iPhone 5c";
    
    if([platform isEqualToString:@"iPhone5,4"])
        return@"iPhone 5c";
    
    if([platform isEqualToString:@"iPhone6,1"])
        return@"iPhone 5s";
    
    if([platform isEqualToString:@"iPhone6,2"])
        return@"iPhone 5s";
    
    if([platform isEqualToString:@"iPhone7,1"])
        return@"iPhone 6 Plus";
    
    if([platform isEqualToString:@"iPhone7,2"])
        return@"iPhone 6";
    
    if([platform isEqualToString:@"iPhone8,1"])
        return@"iPhone 6s";
    
    if([platform isEqualToString:@"iPhone8,2"])
        return@"iPhone 6s Plus";
    
    if([platform isEqualToString:@"iPhone8,4"])
        return@"iPhone SE";
    
    if([platform isEqualToString:@"iPhone9,1"])
        return@"iPhone 7";
    
    if([platform isEqualToString:@"iPhone9,2"])
        return@"iPhone 7 Plus";
    
    if([platform isEqualToString:@"iPhone10,1"])
        return@"iPhone 8";
    
    if([platform isEqualToString:@"iPhone10,4"])
        return@"iPhone 8";
    
    if([platform isEqualToString:@"iPhone10,2"])
        return@"iPhone 8 Plus";
    
    if([platform isEqualToString:@"iPhone10,5"])
        return@"iPhone 8 Plus";
    
    if([platform isEqualToString:@"iPhone10,3"])
        return@"iPhone X";
    
    if([platform isEqualToString:@"iPhone10,6"])
        return@"iPhone X";
    
    if([platform isEqualToString:@"iPod1,1"])
        return@"iPod Touch 1G";
    
    if([platform isEqualToString:@"iPod2,1"])
        return@"iPod Touch 2G";
    
    if([platform isEqualToString:@"iPod3,1"])
        return@"iPod Touch 3G";
    
    if([platform isEqualToString:@"iPod4,1"])
        return@"iPod Touch 4G";
    
    if([platform isEqualToString:@"iPod5,1"])
        return@"iPod Touch 5G";
    
    if([platform isEqualToString:@"iPad1,1"])
        return@"iPad 1G";
    
    if([platform isEqualToString:@"iPad2,1"])
        return@"iPad 2";
    
    if([platform isEqualToString:@"iPad2,2"])
        return@"iPad 2";
    
    if([platform isEqualToString:@"iPad2,3"])
        return@"iPad 2";
    
    if([platform isEqualToString:@"iPad2,4"])
        return@"iPad 2";
    
    if([platform isEqualToString:@"iPad2,5"])
        return@"iPad Mini 1G";
    
    if([platform isEqualToString:@"iPad2,6"])
        return@"iPad Mini 1G";
    
    if([platform isEqualToString:@"iPad2,7"])
        return@"iPad Mini 1G";
    
    if([platform isEqualToString:@"iPad3,1"])
        return@"iPad 3";
    
    if([platform isEqualToString:@"iPad3,2"])
        return@"iPad 3";
    
    if([platform isEqualToString:@"iPad3,3"])
        return@"iPad 3";
    
    if([platform isEqualToString:@"iPad3,4"])
        return@"iPad 4";
    
    if([platform isEqualToString:@"iPad3,5"])
        return@"iPad 4";
    
    if([platform isEqualToString:@"iPad3,6"])
        return@"iPad 4";
    
    if([platform isEqualToString:@"iPad4,1"])
        return@"iPad Air";
    
    if([platform isEqualToString:@"iPad4,2"])
        return@"iPad Air";
    
    if([platform isEqualToString:@"iPad4,3"])
        return@"iPad Air";
    
    if([platform isEqualToString:@"iPad4,4"])
        return@"iPad Mini 2G";
    
    if([platform isEqualToString:@"iPad4,5"])
        return@"iPad Mini 2G";
    
    if([platform isEqualToString:@"iPad4,6"])
        return@"iPad Mini 2G";
    
    if([platform isEqualToString:@"iPad4,7"])
        return@"iPad Mini 3";
    
    if([platform isEqualToString:@"iPad4,8"])
        return@"iPad Mini 3";
    
    if([platform isEqualToString:@"iPad4,9"])
        return@"iPad Mini 3";
    
    if([platform isEqualToString:@"iPad5,1"])
        return@"iPad Mini 4";
    
    if([platform isEqualToString:@"iPad5,2"])
        return@"iPad Mini 4";
    
    if([platform isEqualToString:@"iPad5,3"])
        return@"iPad Air 2";
    
    if([platform isEqualToString:@"iPad5,4"])
        return@"iPad Air 2";
    
    if([platform isEqualToString:@"iPad6,3"])
        return@"iPad Pro 9.7";
    
    if([platform isEqualToString:@"iPad6,4"])
        return@"iPad Pro 9.7";
    
    if([platform isEqualToString:@"iPad6,7"])
        return@"iPad Pro 12.9";
    
    if([platform isEqualToString:@"iPad6,8"])
        return@"iPad Pro 12.9";
    
    if([platform isEqualToString:@"i386"])
        return@"iPhone Simulator";
    
    if([platform isEqualToString:@"x86_64"])
        return@"iPhone Simulator";
    
    return platform;
    
}

+(long long) getNowTimeStamp
{
    // NSTimeInterval返回的是double类型，输出会显示为10位整数加小数点加一些其他值
    // 如果想转成int型，必须转成long long型才够大。
    NSTimeInterval time = [[NSDate date] timeIntervalSince1970];
    long long dTime = [[NSNumber numberWithDouble:time*1000] longLongValue]; // 将double转为long long型
    return dTime;
}

+ (NSString *)getTimeStamp:(NSInteger)time
{
    NSInteger nowTime = [self getNowTimeStamp];
    
    NSInteger timeInterval = nowTime/1000 - time/1000;//毫秒转秒
    long temp = 0;
    NSString *result = @"";
    if (timeInterval < 60)
    {
        result = [NSString stringWithFormat:@"刚刚"];
    }
    else if((temp = timeInterval/60) < 60)
    {
        result = [NSString stringWithFormat:@"%ld分钟前",temp];
    }
    else if((temp = timeInterval/3600) > 1 && (temp = timeInterval/3600) < 24)
    {
        result = [NSString stringWithFormat:@"%ld小时前",temp];
    }
    else if((temp = timeInterval/(3600*24)) > 1 && (temp = timeInterval/(3600*24)) <= 3)
    {
        result = [NSString stringWithFormat:@"%ld天前",temp];
    }
    else
    {
        result = [NSString stringWithFormat:@"3天前"];
    }
    return result;
}


+ (UIImage*) thumbnailImageForVideo:(NSURL *)videoURL atTime:(NSTimeInterval)time {
    
    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil];
    NSParameterAssert(asset);
    AVAssetImageGenerator *assetImageGenerator =[[AVAssetImageGenerator alloc] initWithAsset:asset];
    assetImageGenerator.appliesPreferredTrackTransform = YES;
    assetImageGenerator.apertureMode = AVAssetImageGeneratorApertureModeEncodedPixels;
    
    CGImageRef thumbnailImageRef = NULL;
    CFTimeInterval thumbnailImageTime = time;
    NSError *thumbnailImageGenerationError = nil;
    thumbnailImageRef = [assetImageGenerator copyCGImageAtTime:CMTimeMake(thumbnailImageTime, 60)actualTime:NULL error:&thumbnailImageGenerationError];
    
    if(!thumbnailImageRef)
        NSLog(@"thumbnailImageGenerationError %@",thumbnailImageGenerationError);
    
    UIImage*thumbnailImage = thumbnailImageRef ? [[UIImage alloc]initWithCGImage: thumbnailImageRef] : nil;
    
    return thumbnailImage;
}

@end
